草庐IT

c++ - 如何用Qt显示图像

翻了一下Qt提供的widgets,好像没有显示图片的。在Qt中显示图像的正确方法是什么? 最佳答案 没有专门用于显示图像的小部件,但这可以通过标签小部件来完成。我们使用像素图属性来做到这一点。在你的代码中,确保包含#include然后,无论你想在哪里设置图像,都包括以下内容QPixmappic("/path/to/your/image");ui->label->setPixmap(pic);我们在这里做的是创建一个用作图像的QPixmap对象,然后将该对象设置为标签的pixmap属性。

c++ - Qt Designer 中按钮的回调?

我今晚才开始使用QtCreator,它似乎将所有界面内容都放在了ui文件中。我按照教程为我的图标创建资源,然后将它们添加到顶部的菜单栏。虽然我需要在点击其中一个时建立连接,但不知道如何为它进行回调。我是否必须通过代码完全创建它们,或者有什么方法可以为它们添加回调(而不是仅仅让它们与其他对象交互)。 最佳答案 菜单栏项是操作对象。要在单击它们时执行某些操作,您需要从操作中捕获triggered()signal。阅读有关信号和槽的更多信息here.为此,您需要在MainWindow类中声明一个新的slot。Qt还支持自动执行此操作,无需

c++ - Qt C++初始化列表困惑

我刚开始使用Qt(和C++,在较小程度上),我想确保在继续之前完全理解基本代码。我了解初始化列表中的第一个元素用于选择非默认继承的构造函数。ui(newUi::TestAppMain)的目的是什么?在我看来,这将是一个无限循环,因为在构造函数中将ui设置为TestAppMain的新实例,但事实并非如此。namespaceUi{classTestAppMain;}classTestAppMain:publicQMainWindow{public:explicitTestAppMain(QWidget*parent=0);private:Ui::TestAppMain*ui;};TestA

c++ - Qt 用户调整大小事件结束(stops)

我有一个QWidget,我需要在调整大小事件结束时执行一些操作(刷新小部件中的图片)。我怎样才能捕获这个Action?我需要捕捉用户通过释放鼠标按钮结束所有调整大小操作的时刻。在我的应用程序中,在每个像素调整大小后刷新图像并不是一个好习惯。它应该仅在鼠标释放和调整大小操作结束时调用。我只是试图重新实现QMouseReleaseEvent来捕捉它,但是当用户按下小部件的边框以调整它的大小时它不起作用。这意味着在我们的情况下不起作用。然后我尝试创建自己的QSizeGrip并将其插入到我的小部件的底部,但是重新实现的事件QMouseReleaseEvent再次在其中不起作用。事件不会在用户释

c++ - 为什么 Qt 不应用这个样式表类型选择器?

我有这个小测试用例,它应该显示两个小部件,一个完全重叠另一个。一个是半透明的,所以另一个小部件应该透过它发光。为此,我使用类型选择器Menu(这是它的类名)在一个小部件上设置了样式表。但是,它并没有使小部件不透明200/255,而是使其完全透明,就好像类型选择器根本不适用于菜单对象一样,所以我看不到任何亮点的蓝色了。如果我改为使用*选择器,它会按预期工作。我测试了metaObject()->className()的值,它正确地报告了Menu。有人可以提示我我犯的错误吗?这是一个真实程序的缩减测试用例,它显示了更奇怪的行为,我首先想让这个缩减测试用例工作。#include#include

C++/Qt 编码风格——#define 应该放在哪里

我正尝试在Qt中构建一个突破性的游戏克隆。我需要弄清楚我的球与哪种类型的QGraphicsItem发生碰撞。例如,如果我的球与墙壁碰撞,球就会弹开,如果它与砖碰撞,它必须反弹并摧毁砖。要找出它是什么类型的QGraphicsItem,我认为最好的方法可能是覆盖QGraphicsItem::type()(如果这是,请告诉我方法不对!)。在brick.h的以下代码中,我将“Brick”的类型设置为3。现在,值3看起来很难跟踪。相反,我宁愿用“#define”来声明一些东西#include//shouldthis#definebehere?//#defineBRICK_SPRITE3class

c++ - Qt:实现平移(拖动)的正确方法

QGraphicsview有一个方法setDragMode(ScrollHandDrag)来启用鼠标左键的平移。但我想在单击鼠标滚轮(中间按钮)时启用平移,并创建了以下自定义实现来平移://WithinacustomderivedclassofQGraphicsView//panistruewhenwheelisclickedandfalsewhenreleased//lastPosisdefinedsomewhereelseintheclassvoidGridView::mouseMoveEvent(QMouseEvent*event){if(pan){QPointFcurrentP

c++ - 在 Qt 中将结构传递给信号

我想在Qt中发送一个带有信号的结构。我怎样才能做到这一点?我知道如何用信号发送整数、字符串、图像等,但对结构部分感到困惑。我阅读了一些帖子并发现了有关Q_DECLARE_METATYPE()的信息,但我不了解如何使用它。typedefstruct{intEmpId;QStringName;}StandardData;classData::publicQObject{Q_DECLARE_METATYPE(StandardData);signals:voidSignalData(constStandardData&f_objStandardCan);}我得到的错误1.非命名空间范围类的显式

c++ - Qt 5.3 QPlainTextEdit 改变QTextCursor颜色

我想更改QPlainTextEdit小部件下的光标颜色。我能够将它的宽度设置为6,但我想更改颜色或它。可能吗?QFontMetricsfm(font());setCursorWidth(fm.averageCharWidth());//setCursorColoriswhatIneed.谢谢。编辑:包括图像以举例说明...来自这里:对此:谢谢。Edit2:最终外观 最佳答案 您可以使用QTextCharFormat设置QPlainTextEdit中文本的颜色。使用QTextCharFormat::setForeground设置颜色。

c++ - 配置Qt 5.8和SQL库报错

在构建Qt5.7时,我曾经调用以下命令行:C:\SDK\Qt\src\configure-commercial-confirm-license-debug-and-release-force-debug-info-ltcg-static-angle-nomakeexamples-nomaketests-qt-sql-odbc-qt-sql-sqlite-qt-zlib-DZ_PREFIX-skipqt3d-skipqtactiveqt-skipqtandroidextras-skipqtpurchasing-skipqttools-skipqtcanvas3d-skipqtconnec